home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / stngpasm / pure_c / include / uran / struct.sh < prev    next >
Encoding:
Text File  |  1997-08-08  |  3.1 KB  |  184 lines

  1. ;----------------------------------------------------------------------------
  2. ; File name:    STRUCT.SH            Revision date:    1997.08.08
  3. ; Authors:    Ronald Andersson        Creation date:    1997.03.26
  4. ;(c)1997 by:    Ulf Ronald Andersson        All rights reserved
  5. ;Released as:    FREEWARE            (commercial sale forbidden)
  6. ;----------------------------------------------------------------------------
  7. ; Purpose:    Header file included in assembly sources
  8. ;----------------------------------------------------------------------------
  9. ;Required header declarations:
  10. ;
  11. ;    include    "uran\STRUCT.SH"
  12. ;
  13. ;----------------------------------------------------------------------------
  14. ;    Macro definitions for data structure definitions
  15. ;
  16. struct_index    =    0
  17. ;
  18.     .macro    d_start    name,base
  19. struct_index    =    base
  20. name    equ    struct_index
  21.     .endm
  22. ;
  23.     .macro    struct    name
  24. struct_index    =    0
  25. name    equ    struct_index
  26.     .endm
  27. ;
  28.     .macro    d_b    name
  29. name    equ    struct_index
  30. struct_index    =    struct_index+1
  31.     .endm
  32. ;
  33.     .macro    d_even
  34.     .if    struct_index&1
  35. struct_index    =    struct_index+1
  36.     .endif
  37.     .endm
  38. ;
  39.     .macro    d_w    name
  40.     d_even
  41. name    equ struct_index
  42. struct_index    =    struct_index+2
  43.     .endm
  44. ;
  45.     .macro    d_ow    name
  46. name    equ struct_index
  47. struct_index    =    struct_index+2
  48.     .endm
  49. ;
  50.     .macro    d_l    name
  51.     d_even
  52. name    equ struct_index
  53. struct_index    =    struct_index+4
  54.     .endm
  55. ;
  56.     .macro    d_ol    name
  57. name    equ struct_index
  58. struct_index    =    struct_index+4
  59.     .endm
  60. ;
  61.     .macro    d_s    name,len
  62. name    equ struct_index
  63. struct_index    =    struct_index+len
  64.     .endm
  65. ;
  66.     .macro    d_field    name,len
  67. name    equ struct_index
  68. struct_index    =    struct_index+(len+7)/8
  69. field_index    =    len
  70.     .endm
  71. ;
  72.     .macro    d_bits    name,len
  73. field_index    =    field_index-len
  74. name        equ    field_index
  75. mask_&name    equ    (1<<len)-1
  76. amask_&name    equ    mask_&name<<field_index
  77.     .if    (field_index < 0)
  78.     .error    "bad bit field definition: name,len"
  79.     .endif
  80.     .endm
  81. ;
  82.     .macro    d_alias    name
  83. name    equ    struct_index
  84.     .endm
  85. ;
  86.     .macro    d_end    name
  87. sizeof_&name    equ    struct_index
  88.     .endm
  89. ;
  90. ;----------------------------------------------------------------------------
  91. ;    Macros for various data types
  92. ;
  93.     .macro    uint8    name
  94.     d_b    name
  95.     .endm
  96. ;
  97.     .macro    int8    name
  98.     d_b    name
  99.     .endm
  100. ;
  101.     .macro    uint16    name
  102.     d_w    name
  103.     .endm
  104. ;
  105.     .macro    int16    name
  106.     d_w    name
  107.     .endm
  108. ;
  109.     .macro    uint32    name
  110.     d_l    name
  111.     .endm
  112. ;
  113.     .macro    int32    name
  114.     d_l    name
  115.     .endm
  116. ;
  117.     .macro    uint8_p    name
  118.     d_l    name
  119.     .endm
  120. ;
  121.     .macro    int8_p    name
  122.     d_l    name
  123.     .endm
  124. ;
  125.     .macro    uint16_p    name
  126.     d_l    name
  127.     .endm
  128. ;
  129.     .macro    int16_p    name
  130.     d_l    name
  131.     .endm
  132. ;
  133.     .macro    uint32_p    name
  134.     d_l    name
  135.     .endm
  136. ;
  137.     .macro    int32_p    name
  138.     d_l    name
  139.     .endm
  140. ;
  141.     .macro    char    name
  142.     d_b    name
  143.     .endm
  144. ;
  145.     .macro    long    name
  146.     d_l    name
  147.     .endm
  148. ;
  149.     .macro    word    name
  150.     d_w    name
  151.     .endm
  152. ;
  153.     .macro    byte    name
  154.     d_l    name
  155.     .endm
  156. ;
  157.     .macro    void_p    name
  158.     d_l    name
  159.     .endm
  160. ;
  161.     .macro    char_p    name
  162.     d_l    name
  163.     .endm
  164. ;
  165.     .macro    long_p    name
  166.     d_l    name
  167.     .endm
  168. ;
  169.     .macro    func_p    name
  170.     d_l    name
  171.     .endm
  172. ;
  173.     .macro    struct_p    name
  174.     d_l    name
  175.     .endm
  176. ;
  177.     .macro    struc_p    name
  178.     d_l    name
  179.     .endm
  180. ;
  181. ;----------------------------------------------------------------------------
  182. ; End of file:    STRUCT.SH
  183. ;----------------------------------------------------------------------------
  184.